package net.qiqbframework.modelling.command;

import net.qiqbframework.common.resolving.ResolveAttributes;

import java.lang.annotation.*;

/**
 * 聚合根实体
 */
@Documented
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@ResolveAttributes
public @interface Cmd {
    /**
     * 命令名称。需唯一
     *
     * @return
     */
    String name() default "";

    /**
     * 聚合名称
     *
     * @return
     */
    String aggregateName() default "";

    /**
     * 命令需要操作的领域对象。 领域对象包括聚合根或者领域服务
     *
     * @return
     */
    Class<?> value();
}
